/*学习不定参宏函数的使用*/

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

#define LOG(fmt, ...) printf("[%s:%d]\n", __FILE__, __LINE__, ##__VA_ARGS__);


void printNum(int count, ...)
{
    va_list ap;
    va_start(ap, count);
    for (int i = 0; i < count; i++)
    {
        int num = va_arg(ap, int);
        printf("param[%d]:%d   ", i, num);
    }
    va_end(ap);
}

void myPrintf(const char* fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    char* res;
    int ret = vasprintf(&res, fmt, ap);
    if (ret != -1)
    {
        printf(res);
        free(res);
    }
    va_end(ap);    
}

int main()
{
    LOG("比特就业课");
    myPrintf("%s\n", "比特就业课");
    myPrintf("比特就业课");

    return 0;
}

